package com.techbh.ridecall;

import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.PreferenceActivity;

public class RideCallConfig extends PreferenceActivity implements OnSharedPreferenceChangeListener {
	
	SharedPreferences config;
	
	ListPreference cfg_metodo;
	ListPreference cfg_distancia;
	ListPreference cfg_validade;
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.config);
        
        cfg_metodo = (ListPreference) getPreferenceScreen()
		.findPreference("cfg_metodo");
    
        cfg_distancia = (ListPreference) getPreferenceScreen()
		.findPreference("cfg_distancia");
    
        cfg_validade = (ListPreference) getPreferenceScreen()
		.findPreference("cfg_validade");
        
        config = getPreferenceManager().getSharedPreferences();
    
    }
    
    
	@Override
	protected void onResume() {
		super.onResume();		
		
		setMetodoTitle();
		
		getPreferenceScreen().getSharedPreferences()
			.registerOnSharedPreferenceChangeListener(this);
	}
	
	@Override
	protected void onPause() {
		super.onPause();		
		getPreferenceScreen().getSharedPreferences()
			.unregisterOnSharedPreferenceChangeListener(this);
	}
	
	
	public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
			String key) {
		if (key.equals("cfg_metodo")) {
			setMetodoTitle();
		} else if (key.equals("cfg_distancia")) {
			//setDistanciaTitle();
		} else if (key.equals("cfg_validade")) {
			//setValidadeTitle();
		}
	}
	
	private void setMetodoTitle() {
		String valor = config.getString("cfg_metodo", "chamada");
		cfg_metodo.setTitle("Método (" + valor + ")");
	}

	
	//TODO tratar o indice[0-3] para o valor correto[100m-1km] 
	private void setDistanciaTitle() {
		String valor = config.getString("cfg_distancia", "0");
		cfg_distancia.setTitle("Aproximação (" + valor + ")");
	}

	
	//TODO tratar o indice[0-4] para o valor correto[30min-8h] 
	private void setValidadeTitle() {
		String valor = config.getString("cfg_validade", "0");
		cfg_validade.setTitle("Validade do alerta (" + valor + ")");
	}

	
}
